package com.itHsuSE.demo2;

public class HanoiTower {
    public static void main(String[] args) {
        Tower tower=new Tower();
        tower.move(1,'A','B','C');
    }
}

class Tower {
    /**
     * @param num 要移动的个数
     * @param a   a塔
     * @param b   b塔
     * @param c   c塔
     */
    public void move(int num, char a, char b, char c) {
        //如果只有一个盘，num==1
        if (num == 1) {
            System.out.println(a + "->" + c);
        } else {
            //如果有多个盘，可以看作两个，最下面的盘和上面的所有盘（num-1）
            //（1）先移动上面所有的盘到b，借助c
            move(num - 1, a, c, b);
            //（2）把最下面的盘移动到c
            System.out.println(a + "->" + c);
            //（3）再把b塔的所有盘移动到c，借助a
            move(num-1,b,a,c);
        }
    }
}
